import Vue from 'vue'
import App from './App.vue'
// 引入路由
import router from './router'
// 引入仓库
import store from '@/store'
// 引入图片懒加载
import VueLazyload from 'vue-lazyload'
// 按需映入 elenment-ui 
import { Button, MessageBox } from 'element-ui';
// -----全局组件
import TypeNav from '@/components/TypeNav'  // 三级联动  
import Carsousel from '@/components/Carsousel'   //轮播图
import Pagination from '@/components/Pagination'   //分页器 
// 将引入的TypeVav注册为全局组件
Vue.component(TypeNav.name, TypeNav)
Vue.component(Carsousel.name, Carsousel)
Vue.component(Pagination.name, Pagination)
Vue.component(Button.name, Button)

// element-ui 注册的时候还有一种写法，挂载到原型上
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
// 引入 MockServe.js -------mocks数据
import '@/mock/mockServe'
// 引入 swiper 样式
import "swiper/css/swiper.css"

// 统一接口api 文件夹里面得所有请求函数
import * as API from '@/api';

// 懒加载默认图片
import atm from '@/assets/12e.gif'

// 注册插件
Vue.use(VueLazyload, {
  // 图片懒加载默认图片
  loading: atm
})

Vue.config.productionTip = false
new Vue({
  render: h => h(App),
  // 全局事件总线
  beforeCreate() {
    Vue.prototype.$bus = this
    Vue.prototype.$API = API
  },
  // 注册路由
  router,
  // 注册仓库
  store,
}).$mount('#app')
